# 统计高分六号卫星tif数据的文件名

import os
import re
import pandas as pd

# 定义一个正则表达式来匹配文件夹名称中的经纬度和日期
pattern = re.compile(r'GF6_WFV_E(\d+\.\d+)_N(\d+\.\d+)_(\d{8})_L1A\d+\.tar\.gz$')

# 存储提取信息的列表
data = []
# 存储文件名出现次数的字典
file_count = {}
# 遍历指定目录下的所有文件夹
input_directory = 'E:\\坐标G6\\原始'
output_file_path = 'C:\\Users\\nxt\\Desktop\\数据集\\裁剪\\folder_names_with_geodate2.xlsx'

for root, dirs, files in os.walk(input_directory):
    for file_name in files:
        match = pattern.match(file_name)
        if match:
            longitude = match.group(1)
            latitude = match.group(2)
            date = match.group(3)
            # 将提取的信息添加到列表中
            data.append({
                'File Name': file_name,
                'Longitude': longitude,
                'Latitude': latitude,
                'Date': date
            })
        # 统计文件名出现的次数
        file_count[file_name] = file_count.get(file_name, 0) + 1

# 将列表转换为DataFrame
df = pd.DataFrame(data)

# 保存DataFrame到Excel文件
df.to_excel(output_file_path, index=False)

print(f'文件已成功保存到 {output_file_path}')
duplicates = {file: count for file, count in file_count.items() if count > 1}
if duplicates:
    print("重复的文件名及其数量：")
    for file, count in duplicates.items():
        print(f"{file}: {count}次")
else:
    print("没有找到重复的文件名。")

# 检查是否有匹配的数据
if data:
    # 将列表转换为DataFrame
    df = pd.DataFrame(data)

    # 保存DataFrame到Excel文件
    df.to_excel(output_file_path, index=False)
    print(f'文件已成功保存到 {output_file_path}')
else:
    print("没有找到匹配的文件。")